package czolgisci.tiles;

import java.awt.Point;
import java.io.IOException;

import czolgisci.events.TickEvent;
import utils.geom.Direction;
import utils.time.IClockListener;

/**
 * Klasa nabój reprezentująca nabój wystrzeliwany przez czołg.
 * @author kasztan
 * @version 1.0
 */
public class Bullet extends AMovableTile implements IClockListener
{	
	private int xSpeed = 20;
	private int ySpeed = 20;

	/**
	 * @param position
	 * @param imagePath obrazek (wygląd pocisku)
	 * @throws IOException 
	 */
	public Bullet(String imagePath, Point position) throws IOException
	{
		super(imagePath, position);
	}
	
	/**
	 * @see czolgisci.tiles.AMovableTile#moveEast()
	 */
	@Override
	public void moveEast()
	{
		setDirection(Direction.EAST);
		position.x += xSpeed;
		feedbackListener.onBulletMove(this);
	}

	/**
	 * @see czolgisci.tiles.AMovableTile#moveNorth()
	 */
	@Override
	public void moveNorth()
	{
		setDirection(Direction.NORTH);
		position.y -= ySpeed;
		feedbackListener.onBulletMove(this);
	}

	/**
	 * @see czolgisci.tiles.AMovableTile#moveSouth()
	 */
	@Override
	public void moveSouth()
	{
		setDirection(Direction.SOUTH);
		position.y += ySpeed;
		feedbackListener.onBulletMove(this);
	}

	/**
	 * @see czolgisci.tiles.AMovableTile#moveWest()
	 */
	@Override
	public void moveWest()
	{
		setDirection(Direction.WEST);
		position.x -= xSpeed;
		feedbackListener.onBulletMove(this);
	}

	/**
	 * metoda wywoływana przez zegar
	 * @see utils.time.IClockListener#onTick(czolgisci.events.TickEvent)
	 */
	public void onTick(TickEvent e)
	{
		move(direction);
	}
}
